/* eslint-disable import/no-anonymous-default-export */
interface DefaultStateType {
  list: any[]
}

type ActionType = {
  type: string
  payload: any
}

const defaultState: DefaultStateType = {
  list: [],
}

// 面试题：redux 数据流 reducer
export default (state = defaultState, action: ActionType) => {
  // reducer (=>vuex: module)
  // 为什么要拷贝？如果不拷贝操作，会出现什么问题？
  const newState = JSON.parse(JSON.stringify(state))
  if (action.type === 'UPDATE_LIST') {
    newState.list = [...newState.list, { name: 'devin' }]
  }

  return newState
  // 1. 拷贝数据
  // 2. 处理数据
  // 3. 返回数据
  // return {}
}
